'''
定义一个函数，接受一个字符串和整数作为参数，要求：
1.从字符串头部截取一部分并反转，尾部同理，分别打印出来



def test1(str, n):
    lst = []
    for i in str[:n]:          # 原循环不动
        lst.append(i)
    if len(lst) > 1:
        lst[0], lst[-1] = lst[-1], lst[0]
    head_rev = ''.join(lst)

    lst1 = []
    for j in str[-n:]:
        lst1.append(j)
    if len(lst1) > 1:
        lst1[0], lst1[-1] = lst1[-1], lst1[0]
    tail_rev = ''.join(lst1)

    print(head_rev + str[n:])      # 前反 + 剩余
    print(tail_rev + str[:-n])     # 后反 + 剩余

test1('hello',3)
'''
import tkinter
from logging import raiseExceptions

'''
定义一个函数，实现字典内键值的交换

def key_value_change(dict1):
    dict3 = {}
    for k in dict1.keys():
        dict3[dict1[k]] = k
    return dict3

dict2 = {'a':1,'b':2,'c':3}
print(key_value_change(dict2))
'''

'''
定义一个函数，让用户输入的字符串转化为整数，如果转换失败，则返回错误信息


def string_to_int():
   try:
     num =int(input('请输入字符串：'))
   except ValueError:
       return '输入错误'
   else:
       return num


print(string_to_int())
'''

'''
定义一个函数，接受年龄为参数，如果数值异常便抛出

def age1(age):
   if age <= 0 or age >=120:
       raise Exception("年龄必须在0到120岁之间")

   return (f'年龄是{age}')

try:
    age = int(input("请输入年龄："))
    print(age1(age))
except Exception as e:
    print(e)
'''


'''使用tkinter绘制一个螺旋图案

from tkinter import *
canvas = tkinter.Canvas(width=500, height=400)
# 创建一个canvas组件，用于绘制图案，高400，宽500
canvas.pack(fill=tkinter.BOTH, expand=1)
# 使用pack布局管理器将canvas添加到窗口，并设置填充和扩展
k = 1
j = 1
# k用于控制圆的半径，j用于控制k的变化
for i in range(26):
    # 绘制26个圆
    canvas.create_oval(250-k,200-k,250+k,200+k,width=1)
    # 两个参数代表圆左上角和右上角坐标，250，200是圆心坐标
    k += j
    j += 0.3 
# 进入tkinter
mainloop()
'''